﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TandvardsstodApp.Personkrets
{
    //****************************
    // Tandvårdsstöd - Projektet
    // Författare: Safin Hassan
    // Datum: 2012-04-28
    //****************************

    public partial class RedigeraPerson : System.Web.UI.Page
    {
        ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();

        /// <summary>
        /// Fyller kontroller med värden och manipulerar till "readonly".
        /// Triggas när sidan laddas.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            //System.Data.DataSet dataSetValue = client.GetScalarQueryMaxKortnummer();
            //System.Data.DataTable table = dataSetValue.Tables[0];
            //TxtKortnummer.Text = table.ToString();
            

        }

        /// <summary>
        /// Söker i personlistan(personerTable) och checkar mot sök termen.
        /// Om person inte hittas vissas ett fel meddelande
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnSokIPersoner_Click(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                //hämtar sök resultatet via wcf:en 
                System.Data.DataSet dataSetValue = client.GetDataByKortnummer(TxtSokIPersoner.Text);
                System.Data.DataTable table = dataSetValue.Tables[0];

                try
                {
                    //skriver ett meddelande om person finns
                    if (table.Rows[0][1].ToString() == TxtSokIPersoner.Text)
                        LblSokResultat.Text = "<b>Personen finns i personlistan</b>";
                    else if (table.Rows[0][2].ToString() == TxtSokIPersoner.Text)
                        LblSokResultat.Text = "<b>Personen finns i personlistan</b>";
                    else if (table.Rows[0][3].ToString() == TxtSokIPersoner.Text)
                        LblSokResultat.Text = "<b>Personen finns i personlistan</b>";
                    else if (table.Rows[0][4].ToString() == TxtSokIPersoner.Text)
                        LblSokResultat.Text = "<b>Personen finns i personlistan</b>";

                    // Detta tillstånds hantering sparar aktuell id.
                    this.ViewState["ID"] = table.Rows[0][0];

                    //fyller kontrollerna med värden från sök resultatet
                    TxtKortnummer.Text = table.Rows[0][1].ToString();
                    TxtKortnummer.ReadOnly = true;
                    TxtPersonnummer.Text = table.Rows[0][2].ToString();
                    TxtFornamn.Text = table.Rows[0][3].ToString();
                    TxtEfternamn.Text = table.Rows[0][4].ToString();
                    TxtGatuadress.Text = table.Rows[0][5].ToString();
                    TxtPostnummer.Text = table.Rows[0][6].ToString();
                    TxtOrt.Text = table.Rows[0][7].ToString();
                    TxtBoende.Text = table.Rows[0][16].ToString();
                    TxtInregistreringsdatum.Text = string.Format("{0:yyyy-MM-dd}", table.Rows[0][21]);
                    DdlGrupp.Text = table.Rows[0][8].ToString();
                    DdlKommun.SelectedValue = table.Rows[0][9].ToString();
                    DdlAnbudsomrade.Text = table.Rows[0][24].ToString();
                    DdlMunhalsobedomning.Text = table.Rows[0][17].ToString();
                    ChKAvliden.Checked = bool.Parse(table.Rows[0][13].ToString());
                    ChkInygBestalld.Checked = bool.Parse(table.Rows[0][15].ToString());
                    ChkIntygUtsand.Checked = bool.Parse(table.Rows[0][10].ToString());
                    ChkAvford.Checked = bool.Parse(table.Rows[0][23].ToString());
                    TxtKommentar.Text = table.Rows[0][11].ToString();
                    

                }
                catch
                {
                    //Ger meddelande via en popup fönster om person inte hittas
                    ScriptManager.RegisterStartupScript(BtnSokIPersoner, BtnSokIPersoner.GetType(), "alertscript", "alert(" + '"' + "Personen finns inte i listan" + '"' + ")", true);

                }

            }
        }

        /// <summary>
        /// Redigerar uppgifter om person i personTablen.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnRedigera_Click(object sender, EventArgs e)
        {
            // Avbryt eventen om kontrollernas värden är ogiltiga.(för äldre webbläsare)
            if (!Page.IsValid) return;

            try{
            client.UpdatePersoner(int.Parse(TxtKortnummer.Text), TxtPersonnummer.Text, TxtFornamn.Text, TxtEfternamn.Text,
                TxtGatuadress.Text, TxtPostnummer.Text, TxtOrt.Text, short.Parse(DdlGrupp.SelectedItem.Text),
                int.Parse(DdlKommun.SelectedValue), ChkIntygUtsand.Checked, TxtKommentar.Text, 12, ChKAvliden.Checked,
                false, ChkInygBestalld.Checked, TxtBoende.Text, DdlMunhalsobedomning.SelectedItem.ToString(), false,
                DateTime.MinValue, null, DateTime.Parse(TxtInregistreringsdatum.Text), DateTime.MinValue,
                ChkAvford.Checked, DdlAnbudsomrade.SelectedItem.ToString(), null, (int)this.ViewState["ID"]);

            //Ger meddelande via en popup fönster om person uppgifterna sparades
            ScriptManager.RegisterStartupScript(BtnRedigera, BtnRedigera.GetType(), "alertscript", "alert(" + '"' + "Person uppgifterna är sparade" + '"' + ")", true);
            }
            catch{
                //Ger meddelande via en popup fönster om person uppgifterna ej sparades
                ScriptManager.RegisterStartupScript(BtnRedigera, BtnRedigera.GetType(), "alertscript", "alert(" + '"' + "Person uppgifterna kunde inte sparas! Försök igen!" + '"' + ")", true);
            }
        }
    }
    
}